package com.resume.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * MyBatis分页配置
 *
 * @author 梁云亮
 */
@Configuration
public class MybatisPlusConfig {

    /**
     * 新的分页插件
     * 一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //  插件
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 分页插件
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        // 设置最大分页数
        paginationInnerInterceptor.setMaxLimit(100L);
        // 是否对超过最大分页时做溢出处理，默认false不处理，即直接丢弃溢出的数据，为true时，怎么把溢出数据放入到下一个分页中。
        paginationInnerInterceptor.setOverflow(true);
        // 设置数据库类型以匹配不同方言
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        //paginationInnerInterceptor.setProperties();
        //设置分页方言
        // paginationInnerInterceptor.setDialect();
        //优化Join分页语句，默认true
        //paginationInnerInterceptor.setOptimizeJoin();
        // 添加分页插件
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        return interceptor;
    }

}
